package com.example.sword;

import java.util.HashMap;

public class Test34 {

    public static void main(String[] args) {
        System.out.println("haha");

    }


    /**
     * 在一个字符串(0<=字符串长度<=10000，全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置,
     * 如果没有则返回 -1（需要区分大小写）.（从0开始计数）
     */


    public int FirstNotRepeatingChar(String str) {

        HashMap<Object, Integer> hashMap = new HashMap();
        char[] chars = str.toCharArray();

        for (int i = 0; i < chars.length; i++) {
            
            if (hashMap.containsKey(chars[i])){
                hashMap.put(chars[i],1);
            }else 
            hashMap.put(chars[i],0);
        }

        for (int i = 0; i < chars.length; i++) {
            if (hashMap.get(chars[i])==0){
                return i;
            }
        }
        return -1;
        
    }
    public int FirstNotRepeatingChar1(String str) {

        char[] chars = str.toCharArray();

//        字符长度占8位  有256种可能
        int[] a = new int[256];

        for (int i = 0; i < chars.length; i++) {
            //char转int
            a[chars[i]]++;
        }

        for (int i = 0; i < chars.length; i++) {
            if (a[chars[i]]==1)
                return i;
        }

        return -1;
    }

}
